package zeno.project.springboot.entity.base;

import lombok.Data;

import java.io.Serializable;

/**
 * 定义统一的返回值格式
 * @author ZhiYong
 * @ClassName JsonResult.java
 */
@Data
public class JsonResult<T> implements Serializable {

    private T data;
    private String code;
    private String msg;

    /**
     * 若没有数据返回，默认状态码为200，提示信息为：operate successful！
     */
    public JsonResult() {
        this.code = "200";
        this.msg = "operate successful！";
    }

    /**
     * 若没有数据返回，可以人为指定状态码和提示信息
     * @param code 状态码
     * @param msg 信息
     */
    public JsonResult(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    /**
     * 有数据返回时，状态码为200，默认提示信息为：operate successful！
     * @param data 数据
     */
    public JsonResult(T data) {
        this.data = data;
        this.code = "200";
        this.msg = "operate successful！";
    }

    /**
     * 有数据返回，状态码为200，人为指定提示信息
     * @param data 数据
     * @param msg 信息
     */
    public JsonResult(T data, String msg) {
        this.data = data;
        this.code = "200";
        this.msg = msg;
    }
}
